Ext.ux.TabCloseMenu = function() {
	var tabs, menu, ctxItem;
	this.init = function(tp) {
		tabs = tp;
		tabs.on('contextmenu', onContextMenu);
	};
	function onContextMenu(ts, item, e) {
		if (!menu) {
			menu = new Ext.menu.Menu([{
						id : tabs.id + '_close',
						text : '关闭本标签',
						iconCls:'close_this',
						handler : function() {
							tabs.remove(ctxItem);
						}
					}, {
						id : tabs.id + '_close_others',
						text : '关闭其它标签',
						iconCls:'close_other',
						handler : function() {
							tabs.items.each(function(item) {
										if (item.closable && item != ctxItem) {
											tabs.remove(item);
										}
									});
						}
					}, {
						id : tabs.id + '-close-all',
						text : '关闭全部标签',
						iconCls:'cancel',
						handler : function() {
							tabs.items.each(function(item) {
										if (item.closable) {
											tabs.remove(item);
										}
									})
						}
					}]);
		}
		ctxItem = item;
		var items = menu.items;
		items.get(tabs.id + '_close').setDisabled(!item.closable);
		var disableOthers = true;
		tabs.items.each(function() {
					if (this != item && this.closable) {
						disableOthers = false;
						return false;
					}
				});
		items.get(tabs.id + '_close_others').setDisabled(disableOthers);
		e.stopEvent();
		menu.showAt(e.getPoint());
	}
};